package health.lm.com.home.model;

import org.json.JSONObject;

import java.util.List;

import health.lm.com.data.App;
import health.lm.com.data.HttpCST;
import health.lm.com.home.entity.ContentItemEntity;
import health.lm.com.home.entity.HomeEntity;
import health.lm.com.home.entity.HomePageListEntity;
import health.lm.com.home.entity.InformationEntity;
import health.lm.com.home.entity.NoticeDetailEntity;
import health.lm.com.home.entity.NoticesResponseEntity;
import health.lm.com.home.entity.SugarEntity;
import health.lm.com.home.entity.UnreadNotice;
import health.lm.com.network.EasyHttp;
import health.lm.com.network.callback.SimpleCallBack;
import health.lm.com.network.utils.MyApi;

/**
 *
 */
public class HomeModel {
    private static HomeModel mallModel;

    public static HomeModel getInstance() {
        if (null == mallModel) {
            mallModel = new HomeModel();
        }
        return mallModel;
    }
//    /**
//     * 首页资讯类型
//     * @param observer
//     */
//    public void homeType(SimpleCallBack<List<HomeFragmentPagerEntity>>observer) {
//        JSONObject jsonObject = new JSONObject();
//        String json = "";
//        try {
//            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
//            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_NEWS, HttpCST.INTFC_1001, jsonObject);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        EasyHttp.post("/").upJson(json).execute(observer);
//    }
//    /**
//     * 资讯列表
//     * @param observer
//     */
//    public void informationList(String type,int page, int page_size, SimpleCallBack<List<ContentItemEntity>>observer) {
//        JSONObject jsonObject = new JSONObject();
//        String json = "";
//        try {
//            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
//            jsonObject.put(HttpCST.PAGE_SIZE, page_size);
//            jsonObject.put(HttpCST.PAGE, page);
//            jsonObject.put(HttpCST.TYPE, type);
//            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_NEWS, HttpCST.INTFC_1002, jsonObject);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        EasyHttp.post("/").upJson(json).execute(observer);
//    }

    /**
     * 首页 上部分数据
     *
     * @param pCallBack 回调
     */
    public void getHomeData(SimpleCallBack<HomeEntity> pCallBack) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_MEMBER, HttpCST.INTFC_1003, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(pCallBack);
    }

    /**
     * 首页 下部分 资讯新闻列表
     *
     * @param id        分类id(非必须选
     * @param page      第几页
     * @param pageSize  每页几个
     * @param pCallBack 回调
     */
    public void getHomeNewsData(String id, int page, int pageSize, SimpleCallBack<HomePageListEntity> pCallBack) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            jsonObject.put(HttpCST.PAGE, page);
            jsonObject.put(HttpCST.PAGE_SIZE, pageSize);
            jsonObject.put("category_id", id);
            jsonObject.put("bussiness_id", "0");
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_MEMBER, HttpCST.INTFC_1010, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(pCallBack);
    }

    /**
     * 系统公告
     *
     * @param type      （1：平台通知，2：商会通知）
     * @param page      第几页
     * @param pageSize  每页几个
     * @param pCallBack 回调
     */
    public void getNoticeData(int type, int page, int pageSize, SimpleCallBack<NoticesResponseEntity> pCallBack) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            jsonObject.put(HttpCST.PAGE, page);
            jsonObject.put(HttpCST.PAGE_SIZE, pageSize);
            jsonObject.put("type", type);
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_ACTIVE, HttpCST.INTFC_1006, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(pCallBack);
    }

    /**
     * 公告详情页面
     *
     * @param notice_id 公告id
     * @param pCallBack 回调
     */
    public void getNoticeDetail(int notice_id, SimpleCallBack<NoticeDetailEntity> pCallBack) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            jsonObject.put("notice_id", notice_id);
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_ACTIVE, HttpCST.INTFC_1007, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(pCallBack);
    }

    /**
     * 资讯详情
     *
     * @param observer
     */
    public void informationDetail(String id, SimpleCallBack<InformationEntity> observer) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            jsonObject.put("news_id", id);
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_NEWS, HttpCST.INTFC_1010, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(observer);
    }

    /**
     * 资讯增加浏览量
     *
     * @param observer
     */
    public void informationViews(String id, SimpleCallBack<Object> observer) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            jsonObject.put("news_id", id);
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_NEWS, HttpCST.INTFC_1011, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(observer);
    }

    /**
     * 看资讯获得糖果
     *
     * @param observer
     */
    public void getSugar(String id, SimpleCallBack<SugarEntity> observer) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            jsonObject.put("_id", id);
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_NEWS, HttpCST.INTFC_1013, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(observer);
    }

    /**
     * 获取系统 未读消息数
     */
    public void noticeUnreadNum(SimpleCallBack<UnreadNotice> observer) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_SHOP, HttpCST.INTFC_1002, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(observer);
    }

    /**
     * 资讯搜索
     */
    public void informationSearch(String keyword, int page, int page_size, SimpleCallBack<List<ContentItemEntity>> observer) {
        JSONObject jsonObject = new JSONObject();
        String json = "";
        try {
            jsonObject.put(HttpCST.ACCESS_TOKEN, App.getModel().getAccess_token());
            jsonObject.put(HttpCST.PAGE_SIZE, page_size);
            jsonObject.put(HttpCST.PAGE, page);
            jsonObject.put(HttpCST.KEYWORD, keyword);
            json = MyApi.getInstance().generateMessage(HttpCST.MODULE_NEWS, HttpCST.INTFC_1014, jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
        EasyHttp.post("/").upJson(json).execute(observer);
    }
}
